home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 20 / 5 / DISK2058.ZIP / UNFAST.EXE / FAST.HLP < prev    next >
Text File  |  1980-01-01  |  10KB  |  467 lines

  1. AN_INTRO
  2. INTRODUCTION
  3. ============
  4.  
  5.    FAST is a completely new language for the IBM PC/compatible, running
  6. with MS/PC DOS (version 2 or higher).
  7.  
  8. What does FAST offer that other languages don't?
  9.  
  10.    a) Programs written using FAST will almost always run faster than the
  11.       comparable program written in say C or TURBO PASCAL. Including ALL
  12.       Pascal, C & BASIC language compilers.
  13.    b) Compiling speed is at least 1.5 times faster than the comparable
  14.       languages (500 - 900 lines per second on 8MHZ AT).
  15.    c) Special commands for things like sprites, windows, error handling,
  16.       screen displaying and memory allocation. Also automatic fast screen
  17.       printing, sorting and searching.
  18.    d) Use of dos functions and interupts. Setup your own interupts and
  19.       frequencies to a certain extent.
  20.    e) Source debugging - full control of which segments of code to debug.
  21.    f) Real sound and keyboard control.
  22.    g) Code written in machine language can easily be converted to FAST
  23.       because FAST supports many machine language only commands such as
  24.       block move, fill, search & compare instructions.
  25.    h) FAST has the fastest screen printing commands available, without having
  26.       to manipulate the screen memory yourself.
  27.    i) FAST is very econimcal on memory. FAST uses .COM files which are limited
  28.       to 64k (this would be 5000+ lines of source code).
  29.       A typical small file eg SIEVE.F compiles to about 600 bytes.
  30.    j) FAST has built in all the Terminate and Stay Resident commands and
  31.       functions. A TSR can be as small as about 700 bytes.
  32.    k) FAST is very versatile, most applications can be written in FAST using
  33.       all the high level commands of FAST, but with more experience a program
  34.       can be speeded up with use of more advanced commands also available.
  35.    l) Programs can be written and running in a very short time, making it
  36.       handy for small one-off jobs which must be completed very quickly.
  37.    m) If you want to write a game using sprites or design a graphic interface
  38.       for some purpose then FAST has all the necessary features (WIMP is very
  39.       trendy these days).
  40.    n) I've written a Free Flow Database in FAST using 3000 lines of source code
  41.       and a full text editor (2000 lines).
  42.       Also many other utilities.
  43.       Now I'm writing a very FAST 4GL (come 5GL) database language, compiler
  44.       and runtime for a multi-user network.
  45. BUG
  46. Known BUGS...
  47.  
  48. 1) FAST does not produce the correct code when an expression subtracts a label
  49.    which is not defined until later in the program. To overcome this temporary
  50.    problem declare a variable at the start equal to the label then substitute
  51.    the variable name for the label.
  52.  
  53. 2) The RESET INTERUPTS command won't reset interupts if it's used before
  54.    interupts are used anywhere (eg ON INT 1) becuase it doesn't think the
  55.    interupt library is being used. To be fixed soon.
  56.  
  57.  
  58. Known strangeness...
  59.  
  60. 1) Some (maybe all) 286 (386?) (486?) machines cannot read a word of memory
  61.    when the offset is 0ffffh. I do not know whether this is a bug or not but
  62.    beware of this problem. It literally hangs the CPU halfway through an
  63.    instruction.
  64. COMPILE
  65. Compiling a Program
  66. -------------------
  67. Firstly - The file must be in ASCII format (created using a standard text
  68.           editor, WT for example).
  69.         - The file should have the .F extension.
  70.  
  71. To compile the source file type:
  72.  
  73.         'FAST source'  or  'FAST'  (you will then be prompted for details).
  74.      or 'FAST source;' to skip any prompts.
  75.  
  76. Type 'FAST /h' for help on your version of FAST.
  77. Type 'FAST /m' for altering some of FAST's default options.
  78.  
  79. Notes ! If there is not enough memory to compile then FAST will abort with a
  80.         message saying it needs 200k of memory (approximately).
  81.       ! Only if compiling is sucessful will FAST write a new .COM file, this
  82.         is always called source.COM (source being the main file just compiled).
  83.       ! If a listing of either the source or symbol table is output to disk
  84.         then the file used will be called source.LST
  85. DEF_VARS
  86. FAST Default Variables
  87. ======================
  88.  
  89. FAST has several built in variables which can be used just as your own
  90. variables. These can be utilised by you for increased versatility.
  91.  
  92. Variable name    Default     Description
  93. ------------------------------------------------
  94. COLOR / COLOUR       7       Colour value used by FASTs screen printing.
  95. DURATION             0       Time in 1/18.2 second units left for sound.
  96. ERROR                0       Current error value.
  97. ERRORV         error handler Current error handler address.
  98. IHERE                0       Whether program is in middle of an interupt?
  99. LOCPOS               0       Current screen position of FAST screen printing.
  100. MONO           set by system Type of display, hercules = 1, CGA = 0.
  101. VIDEO          0b000h/0b800h Segment of screen display.
  102. SERIAL_SEG           ?       See ENABLE SERIAL.
  103. SERIAL_SIZE          ?       See ENABLE SERIAL.
  104. SERIAL_HEAD          ?       See ENABLE SERIAL.
  105. FAST_DIC
  106. SYSTEM VARIABLES
  107.  
  108. This is a list of FAST's words. It is not guaranteed to be 100% accurate.
  109.  
  110. color
  111. colour
  112. duration
  113. error
  114. errorv
  115. find_bin_put
  116. ihere
  117. locpos
  118. mono
  119. serial_head
  120. serial_seg
  121. serial_size
  122. video
  123.  
  124. COMPILER DIRECTIVES
  125.  
  126. debug
  127. endif
  128. entry
  129. errors
  130. if
  131. include
  132. inpend
  133. long
  134. para
  135. setdos
  136. short
  137. stack
  138. trace
  139. window
  140.  
  141. FAST COMMANDS
  142.  
  143. asciiz
  144. beep
  145. break
  146. bright
  147. call
  148. change
  149. clocks
  150. close
  151. cls
  152. color
  153. colour
  154. const
  155. const32
  156. create
  157. curpos
  158. cursor
  159. curtoloc
  160. data
  161. datab
  162. deallocate
  163. delete
  164. dim
  165. dimb
  166. dir
  167. disable break
  168. disable interupts
  169. disable serial
  170. dos
  171. enable break
  172. enable interupts
  173. enable serial
  174. endcode
  175. endfor
  176. error
  177. execute
  178. fill
  179. fillb
  180. find
  181. flash
  182. fname
  183. for
  184. forever
  185. free
  186. function
  187. gosub
  188. goto
  189. halt
  190. handle
  191. hgraphics
  192. htext
  193. if
  194. ink
  195. inline
  196. inputs
  197. int
  198. iret
  199. jump
  200. let
  201. line
  202. load
  203. locate
  204. loctocur
  205. lprint
  206. lprintb
  207. lprinth
  208. lprinthb
  209. make
  210. mode
  211. modify
  212. move
  213. moveb
  214. next
  215. noise
  216. null
  217. on break
  218. on critical
  219. on debug
  220. on error
  221. on idle
  222. on int
  223. on key
  224. on scan
  225. on trace
  226. open
  227. out
  228. page
  229. palette
  230. paper
  231. plot
  232. poke
  233. pokeb
  234. pop
  235. popall
  236. print
  237. printb
  238. printh
  239. printhb
  240. prints
  241. proc
  242. procedure
  243. psp
  244. push
  245. pushall
  246. randomize
  247. read
  248. readb
  249. reclen
  250. reg
  251. remove
  252. rename
  253. repeat
  254. reset
  255. restore
  256. retf
  257. return
  258. save
  259. screen
  260. scroll
  261. seek
  262. setint
  263. shape
  264. shell
  265. sound
  266. space
  267. sppos
  268. sprint
  269. sprintb
  270. sprinth
  271. sprinthb
  272. sprite
  273. stack
  274. stop critical
  275. stop debug
  276. stop error
  277. stop idle
  278. stop int
  279. stop key
  280. stop resident
  281. stop scan
  282. stop trace
  283. string
  284. swap
  285. terminate
  286. test
  287. timer
  288. unsigned
  289. var
  290. var32
  291. wait
  292. while
  293. write
  294.  
  295. FAST OPERATORS
  296.  
  297. -
  298. =
  299. +
  300. *
  301. /
  302. <>
  303. >=
  304. <=
  305. >
  306. <
  307. above
  308. below
  309. and
  310. or
  311. xor
  312. mod
  313.  
  314. FAST FUNCTIONS
  315.  
  316. abs
  317. allocate
  318. carry
  319. cdisk
  320. compare
  321. compareb
  322. curpos
  323. digits
  324. dta offset
  325. dta segment
  326. eof
  327. findbin
  328. handle
  329. high
  330. hit
  331. in
  332. indoso
  333. indoss
  334. input
  335. inputb
  336. inputh
  337. inputhb
  338. key
  339. keypressed
  340. keyscan
  341. lcase
  342. low
  343. menu
  344. not
  345. page
  346. peek
  347. peekb
  348. point
  349. printm
  350. psp
  351. read
  352. reg
  353. rleft
  354. rleftz
  355. rnd
  356. rright
  357. rrightz
  358. scan
  359. scrchr
  360. screen
  361. search
  362. searchb
  363. select
  364. serial_send
  365. stack
  366. timer
  367. ucase
  368. usr
  369.  
  370. FAST VARIABLE ASSIGNMENTS
  371.  
  372. =
  373. +=
  374. -=
  375. *=
  376. /=
  377. ++
  378. --
  379. @
  380. [
  381.  
  382. SEPERATORS
  383.  
  384. at
  385. else
  386. for
  387. from
  388. step
  389. then
  390. to
  391. with
  392.  
  393. PRINT CONTROL OPTIONS
  394.  
  395. cr
  396. ff
  397. lf
  398. tab
  399. INCLUDE
  400. EXTINPUT, FAST32, FSORT, FHELP & KEYS are all #INCLUDE files.
  401.  
  402. These files can be used by any program for special functions.
  403. View the files individual with WT to find out how to use them and look at the
  404. example programs which use them.
  405.  
  406. In brief:
  407.  
  408. EXTINPUT provides extended input facilities, such as editing and re-inputting
  409.          over an existing string to make modifications.
  410.  
  411. FAST32   provides a procedure for printing 32 bit numbers in various forms.
  412.  
  413. FSORT    sorts any records within a 64k segment, each record must be a fixed
  414.          length. Automatically includes FINDBIN.
  415.  
  416. FHELP    displays a file on screen with the basic cursor movements and a print
  417.          option. FHELP should be used as a standard way to display on-line help,
  418.  
  419.          it is quick and easy to use. FHELP also has a find option.
  420.  
  421. KEYS     allows testing for when keys are currently pushed or not, also
  422.          provides an optional repeat rate, used by games programs.
  423. MAINT
  424. FAST Maintenance
  425. ----------------
  426. To set the FAST options type:
  427.  
  428.         'FAST /M'
  429.  
  430. Several questions will appear:
  431.  
  432.         Text buffer size  [10240] = Size of source file loaded in at once.
  433.         Maximum labels     [1000] = Maximum number of symbols allowed.
  434.         Label space       [14000] = Maximum space symbols can use.
  435.         Scroll step rate      [3] = When listing to the screen scrolls 3 lines.
  436.         Undef table space  [8000] = Amount of memory for undefined data table.
  437.         Window space       [1500] = Default WINDOW MEMORY size.
  438.         Stack size         [1024] = Default STACK MEMORY size.
  439.  
  440.       * Segment:Offset |/!          You can use either the Pipe or Exclamation.
  441.         Print symbol table? [N]     Produce a symbol table?
  442.         Print memory usage? [N]     Produce output of memory used by FAST and
  443.                                     also by the .COM program when running.
  444.  
  445.         Save changes? [N]           If yes then saves the new options.
  446.  
  447.  
  448. * Segment:Offset represents an address, due to incompatibility problems with
  449.   Gestetner laser printer control codes this option is provided.
  450.  
  451. If FAST doesn't find a FAST.CFG file in the current directory then the default
  452. values are used.
  453.  
  454. The amount of memory used by FAST when loaded up will equal
  455.  
  456.         === FAST.COM size         34k
  457.             Text buffer size      10k
  458.             Max labels*2           2k
  459.             Label space           14k
  460.             Undef table space      8k
  461.             Compiled code size    64k
  462.             Trace segment data    64k
  463.                                  ----
  464.             Total memory needed  196k
  465.  
  466. FAST now creates a FAST.CFG file in the directory which FAST /m was run from.
  467.